import os
import time

PORT = os.getenv("PORT", "7000")
if not PORT:
    print("请提供端口号作为参数")
    exit(1)

pid = os.popen(f"netstat -tulnp | grep -w {PORT} | awk '{{print $7}}' | cut -d'/' -f1").read().strip()
if not pid:
    print(f"端口 {PORT} 未被占用")
else:
    print(f"端口 {PORT} 被进程 {pid} 占用，正在尝试终止进程...")
    os.system(f"kill {pid}")
    if os.system(f"kill -0 {pid}") == 0:
        print(f"进程 {pid} 已被终止")
    else:
        print(f"终止进程 {pid} 失败，请检查权限")
        exit(1)

print("删除旧的日志文件...")
os.system("rm -rf /home/project/electric/front/info.log")

print("启动新的 node 进程...")
os.system("npm run serve > info.log &")

print(f"60秒内检查端口 {PORT}，一秒执行一次...")
for i in range(1, 61):
    result = os.system(f"netstat -tulnp | grep -w {PORT} > /dev/null")
    if result == 0:
        print(f"端口 {PORT} 已启用，服务启动成功")
        exit(0)
    else:
        print(f"检查 {i} 次，端口 {PORT} 未启用")
        time.sleep(1)

print(f"60秒内端口 {PORT} 未启用，服务启动失败")
exit(1)
